1. Field of the Invention
This invention relates to switching multicast packets, and more particularly to switching multicast packets by a router.
2. Background Information
In multicast routing, it is standard engineering practice for a router to receive a multicast packet in a flow on an input port and to transmit copies of the packet on multiple output ports. A flow is identified by the contents of specified fields in the packet header, for example: the Layer 2 source and destination addresses and protocol field; the Layer 3 source and destination addresses; the input port of the router and the list of output ports through which the outgoing multicast packets are to be transmitted, etc. A multi-cast flow can be identified by the source end node and a group number. A shorthand notation for designating such a multicast group flow is (S,G). Here S stands for the IP source address of the source end node of the flow, and “G” stands for the group number, as represented in the IP destination address.
The router creates entries in its multicast routing table for each source and group combination is, each (S,G). The (S,G) routing entry contains information on entry points to an “output list” of interfaces. A copy of the multicast packet is transmitted from each interface on the output list. For a virtual circuit (VC) based routing system, the router can use a point-to-multipoint virtual circuit (p2mp VC) to internally route the multicast packets from the input port to the various output ports on the output list for the particular group. Each multicast flow is identified by its (S,G) pair. Thus in a router, each (S,G) pair has its associated p2mp VC.
When a multicast group has many source end nodes, each source of the group is also identified by a (S,G) pair. Each (S,G) pair requires a p2mp VC within the router to direct the multicast packets through the router from the input port to the ports on the output list for that multicast flow.
Some types of multicast groups may have thousands of sources. For example, interactive television conference systems have a source from which the television broad-cast originates, and has thousands of receivers. However, each of the receivers is also a transmitter and can send packets to the same multicast group address. Thus, each of the receivers is both a receiver and a multicast source. So, for each source, a router that is based on VC architecture must use a p2mp VC resource for the group as it routes the packets coming from the thousands of sources.
Each p2mp VC within a router requires resources, as each p2mp VC requires a table giving its particulars. The tables must be maintained in memory within, for example, silicon memory chips. Memory is expensive, and so the number of p2mp VCs which a router can support is limited. For example, a particular router may be able to support only about several thousand of p2mp VCs, for a particular port, devoted to multi-cast transmission, where it is desired to have an interactive television system capable of supporting ten times this number of participants which are both receivers and transmitters.
There is needed a method for a VC based router to support group multicast, where the group has thousands of sources and the router is limited to fewer p2mp VCs than sources.